由于现有Diffserv路由器采用单队列数据缓冲、最短路由转发方式,在有限带宽(链接容量)和多路由器中继的情况下,不可避免存在时延超限和高服务优先级数据流拥塞问题,两者使其QoS(服务质量)性能难以实现。为解决该问题,本发明提出多队列并行处理和分级接入控制的Diffserv边缘路由器。本发明所提出的Diffserv边缘路由器在有限连接容量的情况下可保证高服务级别的数据流的延迟和低丢包率,实现混合数据流的分级多速率传输。
1.一种Diffserv边缘路由器,其特征在于,该Diffserv边缘路由器包括:分类器,用于对输入数据流按可控性分为受控数据流和非受控数据流,然后,将分类后的数据流分为不同服务级别的数据流;接入控制模块,用于对经分类器分类后的不同服务级别的数据流进行接入控制;多个数据流缓冲器,用于对经接入控制模块接入的不同服务级别的数据流进行缓冲;分级服务队列管理模块,用于对多个数据流缓冲器中缓冲的不同服务级别的数据流进行管理,并且根据所述边缘路由器的输出连接容量和不同服务级别的数据流的丢包率、连接速率和延迟的要求,控制不同服务级别的数据流的丢包率;多队列路由查表模块,用于查找不同服务级别的数据流的转发路径表,根据最短延迟确定转发路径;调度器,用于调度不同服务级别的数据流的连接速率,对高服务级别的数据流优先转发并提供相应的连接速率,并且检测所有直接连接的核心路由器的延迟,将延迟信息提供给多队列路由查表模块。
2.根据权利要求1所述的Diffserv边缘路由器,其特征在于,其中接入控制模块为高服务级别的数据流的接入预留一定连接容量,超出该预留的连接容量的新的高服务级别的数据流不能接入,同时限制低服务级别的数据流接入。
3.根据权利要求2所述的Diffserv边缘路由器,其特征在于,所述对输入数据流按可控性分为受控数据流和非受控数据流的具体方式是:读取IP包头的协议字段数值,识别接入数据流的类型,将待进入数据流缓冲器的数据流分类为受控数据流和非受控数据流;所述将分类后的数据流分为不同服务级别的数据流的具体方式是分类器通过读取IP包头的服务类型字段数值,将待进入数据流缓冲器的已分类的数据流进行服务分级。
4.根据权利要求2所述的Diffserv边缘路由器,其中接入控制模块根据输出连接容量对分级数据流的接入进行控制,在有限连接容量的情况下,限定接入的高服务级别的数据流的数目。
5.根据权利要求2所述的Diffserv边缘路由器,其特征在于,其中分级队列管理模块检测缓冲器中各队列的长度变化,进行丢包控制,丢包控制的具体过程如下:步骤1:检测缓冲器中各队列的长度变化,估计出不同服务级别数据的到达速率和队列延迟;步骤2:优先将高级别队列的数据流发送到多队列路由查表模块;步骤3:对于低级别队列的TCP流和UDP流实行丢包,使得无应答的UDP流不能占用边缘路由器未分配的连接容量,同时保证高服务级别的UDP流的快速转发。
6.根据权利要求3所述的Diffserv边缘路由器,其特征在于,所述受控数据流和非受控数据流处于不同的数据流缓冲器。
7.根据权利要求3所述的Diffserv边缘路由器,其特征在于,所述调度器检测路径下游核心路由器的拥塞情况,获得具有延迟保证的多跳路径。
8.根据权利要求7所述的Diffserv边缘路由器,其特征在于,所述调度器检测路径下游核心路由器的拥塞情况,其具体方法是:定时检测发送至下游各核心路由器的探测数据包的延迟,并将其延迟信息记入最小延迟转发路径表。
9.根据权利要求1所述的Diffserv边缘路由器,其特征在于Diffserv路由器对分级服务数据流的处理流程为如下步骤:步骤1:分级服务数据流输入;分类器按服务级别对数据流进行分类,确定分级服务数据流可进入的缓冲队列;同时,接入控制模块根据Diffserv路由器的输出连接容量确定允许接入的不同服务级别的数据流数目,对超出其接入允许数目的数据流不允许进入数据缓冲队列;步骤2:不同服务级别的数据流在多个数据流缓冲器中排队;步骤3:分级服务队列管理模块监视各数据流缓冲器中队列长度变化,计算系统稳定的平衡点,按服务级别对不同队列进行丢包处理;步骤4:调度器检测转发路径上具有最小延迟的核心路由器,动态更新最小延迟转发路径表;调度器根据服务级别分配连接容量;步骤5:多队列路由查表模块对多队列中数据包按最小延迟查转发路径表,确定转发路径,将数据包发送到Diffserv路由器输出电路接口;调度器按数据流的级别采用不同速率转发不同服务级别的数据流,实现分级服务数据流的输出。
10.根据权利要求9所述的Diffserv边缘路由器,其特征在于,在步骤1中,接入控制模块为高服务级别的数据流的接入预留一定连接容量,超出该预留连接容量的新的高服务级别的数据流不能接入,同时限制低服务级别的数据流接入。
11.根据权利要求9所述的Diffserv边缘路由器,其特征在于,在步骤3中,分级服务队列管理模块根据系统稳定的平衡点的计算方法是:对于第i个服务级别的受控数据流队列,给定最大丢包率p
i,max,i=1,...,I,使Diffserv边缘路由器与发送端参数满足对于i=1,...,I,
N i ( k ) R i ( k ) W i ( k ) [ 1 - p i ( k ) ] ≤ c i ( k ) - - - ( 1 ) ]]> 其中k为离散时间,k=t/T
s,t为时间,T
s为数据流取样周期;W
i(k)定义为具有第i个服务级别的用户群的预期数据发送数据包个数;在上行链路中,网络的边缘路由器的输入端口连接IP用户终端,输出端口连接核心路由器;在下行链路中,网络的边缘路由器的输入端口连接核心路由器,输出端口连接IP用户终端;p
i(k)为Diffserv边缘路由器丢包率,i=1,...,I;R
i(k)为数据包往返时间(RTT);N
i(k)为Diffserv边缘路由器连接的具有第i个服务级别的服务用户个数;c
i(k)为Diffserv边缘路由器分配给第i个服务级别的用户群的连接容量,第i个服务级别的用户群的连接容量c
i(k)满足
Σ i = 1 I c i ( k ) ≤ C - - - ( 2 ) ]]> C为边缘路由器总连接容量。
12.根据权利要求9的所述的Diffserv边缘路由器,其特征在于,在步骤3中,分级服务队列管理模块监视各队列长度q
i(k)的变化,按服务级别对不同队列进行丢包处理,具体方法是:给定最大丢包率p
i,max,使第i个服务级别的丢包塞
p i ( k ) = 0,0 ≤ q i ( k ) < q i , min p i , max q i ( k ) - q i , min q i , max - q i , min , q i , min ≤ q i ( k ) < q i , max 1 , q i , max ≤ q i ( k ) - - - ( 3 ) ]]> 其中q
i,min为路由器第i个缓冲器的最小队列长度,q
i,max为路由器第i个缓冲器的最大队列长度,k为离散时间,k=t/T
s,t为时间,T
s为数据流取样周期。
13.根据权利要求9所述的Diffserv边缘路由器,其特征在于,在步骤4中,调度器检测路径下游核心路由器的拥塞情况,取具有延迟保证的路径,而非最短路径。
技术领域本发明涉及网络路由技术,尤其涉及一种分级服务边缘路由器。
背景技术传统的、主要用于数据业务的IP网为满足语音业务与多媒体业务的需要,不得不考虑对网络各节点路由器采用分级服务算法,向分级服务网络演进。为保证IP网络上的服务质量(Qualityxa0ofxa0Service,QoS),互联网工程任务组(Internetxa0Engineeringxa0Taskxa0Force,IETF)首先提出用RSVP(资源预留协议)和Intserv(综合服务)模型,参见参考文献[1,2],在发送数据前对建立至接收端的传输路径和预留资源,通过接入控制、策略控制、分类调度控制等机制实现端到端的QoS。由于要在传输路径上的每个路由器为每一个流进行资源预留,并且要建立和拆除路径,这就要求每个路由器都要支持RSVP,都要维护路由和资源的“软状态”信息,这样,RSVP+Intserv模型的可扩展性及鲁棒性差,在现有的网络上特别对大型广域网实现起来非常困难,其主要问题在于核心路由器难以实现基于流的和基于分组的混合流的高速分级转发。这一问题促使IETF发展Diffserv(区分业务)模型,其模型的发展情况参见参考文献[3-9]。在区分业务网络中,路由器分为边缘路由器与核心路由器。边缘路由器的定义:边缘路由器是部署在区分业务网络的边缘,提供IP用户终端进入区分业务网络的接入的路由器。其功能为:对连接的IP用户数据流向核心路由器进行双向转发。核心路由器的定义:核心路由器是部署在区分业务网络的内部,连接边缘路由器或其它核心路由器的路由器。其功能为:对连接的边缘路由器或其它核心路由器进行双向转发。边缘路由器与核心路由器的区别:(1)在上行链路中,网络的边缘路由器的输入端口连接IP用户终端,输出端口连接核心路由器。在下行链路中,网络的边缘路由器的输入端口连接核心路由器,输出端口连接IP用户终端。(2)网络的核心路由器不直接与IP用户终端连接,在上行链路中,网络的核心路由器的输入端口连接边缘核心路由器。在下行链路中,网络的核心路由器的输入端口连接其它核心路由器,输出端口连接边缘路由器。(3)核心路由器需要处理的数据流的容量远远大于边缘路由器,每秒钟处理的数据包可达数千万个。在如此海量数据流的转发过程中,核心路由器完成区分业务功能是非常困难的。IETF发展Diffserv(区分业务)模型,考虑将区分业务功能由网络的边缘路由器完成。(4)网络边缘路由器将业务流分解成小数据量的聚集流(类),由IP分组包头的DSCP(Diffservxa0Codexa0Point,区分业务码)来标识。网络边缘路由器实施分类、标记、管理等功能,网络的核心路由器仅根据DSCP相关的PHB(per-hop-behavior)转发数据包,简化了网络内部核心路由器的结构,取得比综合服务Intserv大的多的可扩展性。但是,现有的Diffserv网络的边缘路由器仍存在下列问题,并不能保证IP网的有优先级的语音业务与多媒体实时业务质量。问题1:现有技术是对边缘路由器入口接收数据流分类和标记,丢包控制,按服务级别转发,但没有考虑丢包控制是否一定有效。当Diffserv用户向Diffserv边缘路由器同时注入TCP和UDP数据包时,TCP流和UDP流的相互作用使无应答的UDP流增加TCP流的丢包率。网络仿真实验表明:如果当TCP与UDP流共处Diffserv边缘路由器的同一缓冲队列时,由于拥塞时TCP流会降低发送速率而UDP流却保持原速率发送,将导致UDP流压制TCP流并占有较多带宽,而TCP流却无法获得公平连接容量。问题2:现有的Diffserv网络的边缘路由器没有考虑根据输出连接容量对会聚分级数据流的接入控制。在有限连接容量的情况下,大量高服务级别的数据流(VOIP)的接入同样会导致边缘路由器大量丢包,无法保证已接入的高服务级别的数据流的服务质量。问题3:现有的Diffserv网络的边缘路由器不能发现路径下游节点路由器的拥塞情况。参考文献:[1]IETFxa0workingxa0Group.Onxa0Integratedxa0Service.http://www.ietf.org./html.charters/intservxa0chartetr.html[2]IETFxa0workingxa0Group.Onxa0Differentiatexa0Service.http://www.ietf.org/html.charters/diffservxa0charter.html[3]S.Blakexa0etxa0al.,“Anxa0Architecturexa0forxa0Differentiatedxa0Services”,IETFxa0RFC2475,December,1998.[4]H.Su,M.Atiquzzaman,Comprehensivexa0performancexa0modelxa0ofdifferentiatedxa0servicexa0withxa0tokenxa0bucketxa0marker,IEExa0Proceedings-Communications,Volumexa0150,Issuexa05,2003,Page(s):347-53.[5]Xipengxa0Xiao,T.Telkamp,V.Fineberg,Chengxa0Chen;L.M.Ni,Axa0practicalapproachxa0forxa0providingxa0QoSxa0inxa0thexa0Internetxa0backbone,IEEExa0CommunicationsMagazine,Volumexa040,Issuexa012,Decxa02002Page(s):56-62.[6]E.Hossain,V.K.Bhargava,l
ink-levelxa0trafficxa0schedulingxa0forxa0providingpredictivexa0QoSxa0inxa0wirelessxa0multimediaxa0networks,IEEExa0Transactionsxa0onxa0Multimedia,Volumexa06,Issuexa01,Feb.2004Page(s):199-217.[7]M.C.Domingo,D.Remondo,Axa0cooperationxa0modelxa0andxa0routingxa0protocolforxa0QoSxa0supportxa0inxa0adxa0hocxa0networksxa0connectedxa0toxa0fixedxa0IPxa0networks,Proceedingsxa0of2005Advancedxa0Industrialxa0Conferencexa0onxa0Telecommunications.Telecommunications/Servicexa0Assurancexa0withxa0Partialxa0andxa0Intermittentxa0ResourcesConference/E-Learningxa0onxa0Telecommunicationsxa0Workshop.AICT/SAPIR/ELETE2005.17-20Julyxa02005Page(s):390-395.[8]P.Kemper,D.Muller,A.Thummler,Combiningxa0xa0responsexa0xa0surfacemethodologyxa0withxa0numericalxa0modelsxa0forxa0optimizationxa0ofxa0class-ba
sedxa0queueingsystems,Proceedingsxa0xa0ofxa0Internationalxa0Conferencexa0onxa0Dependablexa0Systemsxa0andNetworks(DSNxa02005),2005,Page(s):550-559.[9]Horlaitxa0Eric,Rouhanaxa0Nicolas.Differentiatedxa0servicesxa0andxa0integratedservicesxa0usexa0ofxa0MPLS,Fifthxa0IEEExa0Symposiumxa0onxa0Computersxa0andxa0Communications(ISCCxa02000)Julyxa004-06,2000,Antibes,France.p.194-199.
发明内容由于现有Diffserv边缘路由器存在上述问题,本发明提出能够解决上述问题的Diffserv边缘路由器。本发明提出的Diffserv边缘路由器具有并行处理和分级接入控制和调度、多节点拥塞感知的功能,可以充分利用路由器的出口带宽,保证高优先级用户的语音业务与多媒体业务的数据流的速率、最小延迟和丢包率。
附图说明图1为根据本发明一个具体实施方式的Diffserv边缘路由器结构示意图。图2为Diffserv边缘路由器对分级服务数据流的处理流程示意图。图3为IP包头的结构图。图4为两类TCP流的数据包往返时间曲线图。图5为两类TCP流的丢包率曲线图,丢包率为TCP流服务质量的重要指标,丢包率低意味着数据传输可靠性高。图6为TCP、VOIP和UDP流为在本发明的Diffserv路由器处于拥塞情况下的吞吐量比较图。下面结合附图和实施例对本发明进一步说明。
具体实施方式本发明提出Diffserv边缘路由器模型,其系统框架如图1所示。如图1所示,图1中左侧是分级用户群,用
![]()
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="94"/>i=1,..,I表示,i为用户服务级别,N
i为i级用户数。虚线框表示Diffserv边缘路由器。该Diffserv边缘路由器包括以下模块:分类器,用于输入数据流的分类。其中,根据本发明的一个具体实施方式,流类型分类包括:TCP流,UDP流;根据本发明的一个具体实施方式,流级别分类包括:TCP流中的1级数据流,2级数据流,...,I级数据流;根据本发明的一个具体实施方式,UDP流中的1级数据流,2级数据流,...,J级数据流;根据本发明的一个具体实施方式,VOIP流属于1级UDP数据流;在包括TCP流和UDP流的两类数据流中,第1级数据流为最高服务级别。接入控制模块,用于对不同类别数据流、不同服务级别的数据流进行接入控制。在超出Diffserv边缘路由器连接容量的大量不同类别与不同服务级别的数据流需要通过路由器转发时,接入控制模块根据路由器连接容量,控制不同类别数据流与不同服务级别的数据流的接入,优先接入高服务级别的数据流,限制或屏蔽低服务级别的数据流的接入。多个数据流缓冲器,如图1所示,包括1级数据流缓冲器...I级数据流缓冲器。这些数据流缓冲器用于对不同服务级别的数据流进行缓冲,可将受控数据流(TCP流)与非受控数据流(UDP流)分别按服务级别进行缓冲。分级服务队列管理模块,用于管理不同服务级别的数据流,这些管理包括:数据流队列长度监测,丢包率控制。分级服务队列管理模块根据路由器输出连接容量和不同服务级别的数据流的丢包率、连接速率和延迟的要求进行丢包率控制。多队列路由查表模块,用于查找不同服务级别的数据流的转发路径表,根据最短延迟确定转发路径,从而绕开下游拥塞节点。调度器,用于调度不同服务级别的数据流的连接速率,对高服务级别的数据流优先转发并提供相应的连接速率。调度器同时检测所有直接连接的核心路由器的延迟,将延迟信息提供给多队列路由查表模块。对于图1的Diffserv边缘路由器,用户群的分为I个优先级,Diffserv边缘路由器入口连接I个服务级的用户群
![]()
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="93"/>i=1,..,I,p
i(k)为第i级数据流的丢包率,c
i(k)为Diffserv边缘路由器分配给第i级数据流的连接容量.如图1所示,根据本发明一个具体实施方式提出的Diffserv边缘路由器采用了多队列数据缓冲结构,可并行处理不同优先级的多队列数据。这样可解决单队列处理的速度馒、与无法实现高优先级数据流的快进快出和延迟保障问题。根据本发明一个具体实施方式提出的Diffserv边缘路由器在输入端采用了分类器和接入控制模块,这两个模块对输入数据流进行联合处理。在多个数据流缓冲器处采用了分级服务队列管理模块。在输出端采用了多队列路由查表模块和调度器。根据本发明一个具体实施方式提出的Diffserv边缘路由器可解决Diffserv网络的有优先级的语音业务与多媒体实时业务质量问题,保证分级服务数据流的速率、最小延迟和丢包率,同时考虑避免输出数据同步振荡和下游拥塞节点的感知问题。a.分类器在图1的Diffserv边缘路由器中,采用多队列结构,分类器对接入的数据流进行分类,将不同服务级别数据包送入不同服务级别的数据流缓冲器。在根据本发明的一个具体实施方式中,分类器将分级数据流分为受控数据流(如TCP流)和非受控数据流(如UDP流,ICMP流,IGMP流等)。造成因特网络拥塞的数据流主要为TCP流和UDP流,其中TCP流为受控数据流,UDP流为非受控数据流。由于TCP流和UDP流的数据包的IP包头是不同的,因此分类器通过读取数据包中IP包头可以判别所读取的数据包是TCP流的数据包还是UDP流的数据包,从而对数据包进行分类。IP包头的结构如图3所示,Diffserv边缘路由器的分类器读取到达数据包的包头获取数据流类别与服务级别。IP包头一般是20字节长。在因特网数据帧中,IP包头紧跟着因特网帧包头。IP包头最长可扩展到60字节。IP包头(PacketHeader)的各字段说明如下。(1)版本(Version)字段长度4位:标识了数据包的IP版本号。这个4位字段的设置为二进制的0100表示IP版本4(IPv4),设置为0100表示IP版本6(IPv6)。(2)包头长度(headerxa0length)字段长度为4位:它表示32位字长的IP包头长度。(3)服务类型(Typexa0ofxa0Service,Tos)字段长度为8位:用来指定特殊的数据包处理方式。服务类型字段实际上被划分为两个字段:优先权和ToS。优先权用来设置数据包的优先级。ToS允许按照吞吐量、时延、可靠性和费用方式选择传输服务。(4)数据包总长度(Totalxa0Length):数据包总长度字段的长度为16位。接收者用总长度减去IP包头长度,就可以确定数据包数据有效载荷的大小。IP数据包的最大长度是65535。(5)标识(Identifier)字段长度为16位:通常与标记字段和分段偏移字段一起用于数据包的分段。如果数据包原始长度超过数据包所要经过的数据链路的最大传输单元(MTU),那么必须将数据包分段为更小的数据包。(6)标记字段(Flag)长度为3位,其中第1位没有使用。第2位为不分段(DF)位。当DF位被设置为1时,表示路由器不能对数据包进行分段处理。如果数据包由于不能被分段而未能被转发,那么路由器将丢弃该数据包并向源点发送错误消息。第3位表示还有更多分段(MF)位,当路由器对数据包进行分段时,除了最后一个分段的MF位设置为0外,其他所有的MF位均设置为1,以便接收者直到收到MF位为0的分段为止。(7)分段偏移量(Fragmentxa0Offset)字段长度为13位:以8个八位组为单位,用于指明分段起始点相对于包头起始点的偏移量。如果一个分段在传输中丢失,那么必须在网络中同一点对整个数据包重新分段并重新发送。容易发生故障的数据链路会造成时延不成比例。(8)TTL(生存时间,Timexa0Toxa0Live)字段长度为8位,在最初创建数据包时,TTL即被设置为某个特定值。当数据包逐个沿路由器被传输时,每台路由器都会降低TTL的数值。当TTL值减为0时,路由器将会丢弃数据包并向源点发送错误信息。(9)协议(Protocol)字段长度为8位,它给出了主机到主机层或传输层协议的“地址”或协议号,协议字段指定了数据包中信息的类型。下面给出一些众所周知的协议号:1:ICMP2:IGMP4:被IP协议封装的IP6:TCP17:UDP45:域间路由选择协议(IDRP)47:通用路由选择封装(GRE)54:NBMA下一跳解析协议(NHRP)88:Ciscoxa0Internet网关路由选择协议(IGRP)89:开放式最路径优先(OSPF)。(10)包头校验和(Headerxa0Checksum)是针对IP包头的纠错字段。校验和不计算被封装的数据,UDP、TCP和ICMP都有各自的校验和。(11)源IP地址和目的IP地址(Sourcexa0andxa0Destinationxa0IPxa0Address)字段长度为32位,分别表示发送者数据包源点和目的地的IP地址。(12)可选项(Options)是一个长度可变的字段,它是可选的。常用的可选项如下:松散源路由选择(Loosexa0Sourcexa0Routing),严格源路由选择(StrictSourcexa0Routing),记录路由(Recordxa0Routing),时间戳(Timestamp)。按照本发明一个实施方式提出的分类器通过读取IP包头的协议字段数值:6:TCP,17:UDP,识别接入数据流的类型,将待进入数据流缓冲器的数据流分类为受控数据流(如TCP流)和非受控数据流(如UDP流)。按照本发明一个实施方式提出的分类器通过读取IP包头的服务类型(Typeofxa0Service)字段数值,将待进入数据流缓冲器的已分类数据流进行分级。b.接入控制模块接入控制模块根据到达的数据流的容量,限制不同级别的数据流的接入数目。接入控制模块为高服务级别的UDP数据流(VOIP)的接入预留一定连接容量,超出该预留连接容量的新的高服务级别的数据流不能接入,同时限制低级别的UDP流接入。按照本发明一个实施方式,Diffserv分级队列管理模块检测缓冲器中各队列的长度变化,并提供给接入控制模块。如果当前新的高服务级别的数据流欲接入的队列接近最大值,说明给该服务级别的数据流的预留连接容量将耗尽,接入控制模块将屏蔽当前新的高服务级别的数据流接入,即在接入控制模块的接口处对该新的高服务级别的数据流丢包。c.分级队列管理模块分级队列管理模块检测缓冲器中各队列的长度变化,进行丢包控制。丢包控制使用本发明提出的Diffserv边缘路由器的多队列分级队列控制算法。多队列分级队列控制算法包括下列步骤:步骤1:检测缓冲器中各队列的长度变化,估计出不同服务级别数据(TCP流和UDP流)的到达速率和队列延迟;步骤2:优先将高级别队列的数据流发送到多队列路由查表模块;步骤3:对于低级别队列的TCP流和UDP流实行丢包,使得无应答的UDP流不能占用边缘路由器未分配的连接容量,同时保证高优先级的UDP流的快速转发。d.调度器调度器检测转发路径上具有最小延迟的核心路由器,动态更新最小延迟路由表。调度器实现该功能的过程是:定时检测发送至下游各核心路由器的探测数据包的延迟,并将其延迟信息记入最小延迟路由表。调度器根据服务级别分配连接容量。调度器实现该功能的过程是:对完成查表的数据流,按服务级别采用不同速率转发。e.多队列路由查表模块多队列路由查表模块按最小延迟查路由表,确定转发路径。实现该功能的方法是:读取数据包的IP包头的源地址和目的地址(Sourcexa0andxa0DestinationAddress)字段,在路由表中比较至目的地址下游路由器的延迟,选取具有最小延迟转发路径。本发明通过分类器和接入控制模块,可解决有应答的TCP流不受无应答的UDP流的影响问题。其具体方法是:接入控制模块为高服务级别的数据流(比如,VOIP流)的接入预留一定连接容量,超出该预留连接容量的新的高服务级别的数据流不能接入,同时限制低级别的UDP流接入。这样,可避免无效低级别的UDP流占用边缘路由器的有限连接容量。本发明通过分类器和接入控制模块,可解决大量高服务级别的数据流(比如,VOIP流)的接入导致边缘路由器大量丢包问题。其具体方法是:Diffserv路由器根据输出连接容量对会聚分级数据流的接入进行控制。在有限连接容量的情况下,限定接入的高服务级别的数据流数目。本发明的调度器可解决现有的Diffserv网络的边缘路由器不能发现路径下游节点路由器的拥塞情况的问题。其具体方法是:调度器检测路径下游节点路由器的拥塞情况,取具有延迟保证的多跳路径,而非最短路径的多跳路径。本发明通过分级服务队列管理模块可解决无应答的UDP流占用边缘路由器未分配的连接容量问题。其具体方法是:分级服务队列管理模块检测不同服务级别数据(TCP流和UDP流)的到达速率和队列延迟,优先将高级别数据发送到多队列路由查表模块与调度模块处理,对于级别低的TCP流和UDP流实行丢包,这样,无应答的低服务级别的UDP流不能占用边缘路由器未分配的连接容量。图2给出本发明提出的Diffserv路由器对分级服务数据流的处理流程。Diffserv路由器对分级服务数据流的处理流程为如下步骤。步骤1:分级服务数据流输入;分类器按服务级别对数据流进行分类,确定分级服务数据流可进入的缓冲队列;同时,接入控制模块根据路由器的输出连接容量确定允许接入的不同服务级别的数据流数目,对超出其接入允许数目的数据流不允许进入数据缓冲队列;步骤2:不同服务级别的数据流在多队列数据流缓冲器排队;步骤3:分级服务队列管理模块监视各队列长度变化,计算系统稳定的平衡点:见式(1),按服务级别对不同队列进行丢包处理。步骤4:调度器检测转发路径上具有最小延迟的核心路由器,动态更新最小延迟路由表;调度器根据服务级别分配连接容量。步骤5:多队列路由查表模块对多队列中数据包按最小延迟查路由表,确定转发路径,将数据包发送到路由器输出电路接口;调度器按数据流的级别采用不同速率转发不同服务级别的数据流,实现分级服务数据流的输出。在上述步骤1中,接入控制模块为高服务级别的数据流(比如,VOIP)的接入预留一定连接容量,超出该预留连接容量的新的高服务级别的数据流不能接入,同时限制低级别的UDP流接入,避免无效低级别的UDP流占用边缘路由器的有限连接容量。在上述步骤1中,接入控制模块根据输出连接容量对会聚分级数据流的接入进行控制。在有限连接容量的情况下,限定接入的高服务级别的数据流数目。在上述步骤2中,受控数据流和非受控数据流处于不同的数据流缓冲器。在上述步骤3中,分级服务队列管理模块根据系统稳定的平衡点(见式(1)),配置网络参数的具体方法是:对于第i个服务级别的受控数据流队列,给定最大丢包率p
i,max,i=1,...,I,使Diffserv边缘路由器与发送端参数满足对于i=1,...,I,
N i ( k ) R i ( k ) W i ( k ) [ 1 - p i ( k ) ] ≤ c i - - - ( 1 ) ]]> 其中k为离散时间,k=t/T
s,t为时间,T
s为数据流取样周期;W
i(k)定义为具有第i个服务级别的用户群的预期数据发送窗口尺寸(数据包个数),i=1,...,I;p
i(k)为路由器丢包率,q
i(k)为路由器预期队列长度;R
i(k)为数据包往返时间(RTT);N
i(k)为路由器连接的具有第i个优先级的服务用户个数;c
i(k)为Diffserv边缘路由器分配给第i个优先级的用户群的连接容量。第i个优先级的用户群的连接容量c
i(k)满足
Σ i = 1 I c i ( k ) ≤ C - - - ( 2 ) ]]> C为边缘路由器总连接容量。在上述步骤3中,分级服务队列管理模块监视各队列长度q
i(k)的变化,按服务级别对不同队列进行丢包处理,具体方法是:给定最大丢包率p
i,max,使第i个优先级的丢包率
p i ( k ) = 0,0 ≤ q i ( k ) < q i , min p i , max q i ( k ) - q i , min q i , max - q i , min , q i , min ≤ q i ( k ) < q i , max 1 , q i , max ≤ q i ( k ) - - - ( 3 ) ]]> 其中q
i,min为路由器第i个缓冲器的最小队列长度,q
i,max为路由器第i个缓冲器的最小队列长度。在上述步骤4中,按照本发明一个实施方式的调度器检测路径下游节点路由器的拥塞情况,取具有延迟保证的多跳路径,而非最短路径的多跳路径。调度器实现该功能的方法是:定时检测发送至下游的各核心路由器的探测数据包的延迟,并将其延迟信息记入最小延迟路由表。本发明通过实施例说明所提出的Diffserv边缘路由器可以确保图1网络分级服务数据流无挤塞。考虑两类数据流:TCP流和UDP流,TCP流分两类:第1类和第2类,UDP流分为两类:第3类(VoIP),第4类:一般UDP连接。产生更切合实际的交通情况。根据本发明的一个具体实施方式,采用上述方法设计的Diffserv边缘路由器的实验参数如表1和表2所示。在表1中,各数据流分配的连接容量之和为路由器的输出连接容量,C
1+C
2+C
3+C
4=C=10000包/毫秒。4类数据流在图1中占用了4个缓冲队列。分级服务队列管理器对两类TCP流进行控制,使其满足:
N i ( k ) R i ( k ) W i ( k ) [ 1 - p i ( k ) ] ≤ c i , ]]>对于i=1,2。分类器保证语音IP流(第3类)的接入,TCP流和一般UDP流(第4类,尽力而为型服务)不能占用语音IP流链接容量,分类器将整个4类数据流发送到不同的缓冲队列。尽力而为型服务是指在连接容量许可的情况下,保证路由器的吞吐量为最大,而不管其丢包率、延迟、数据流的接入速率和数据包往返时间等指标。尽力而为型服务不适合语音IP流,因为它无法保证语音IP流的丢包率、延迟、数据流的接入速率。表1连接容量分配
xa0分级服务数据流
连接容量
xa0第1类(TCP流,有
xa0服务保障)
C1=4000数
据包/毫秒
xa0第2类(TCP流,尽力
xa0而为)
C2=2000数据
包/毫秒
xa0xa0第3类(语音IP流,
xa0xa0有服务保障)
C3=2000数据
包/毫秒
xa0xa0第4类(UDP流,尽
xa0xa0力而为)
C4≥1000数
据包/毫秒
表2.两类TCP用户的网络参数
xa0xa0网络参数
xa0xa0第1类(TCP流,有服务保障)
xa0xa0第2类(TCP流,尽力而为)
xa0xa0接入用户数
xa0xa0N1=30
xa0xa0N2=60
xa0xa0连接容量
xa0xa0C1=4000数据包/毫秒
xa0xa0C2=2000数据包/毫秒
xa0xa0最大丢包率
xa0xa0p1,max=p10=0.05
xa0xa0p2,max=p20=0.1
xa0xa0传输延迟
xa0xa0T1∈[3,4]毫秒
xa0xa0T2∈[3,4]毫秒
xa0xa0最小队列长度
xa0xa0q1,min=60数据包
xa0xa0q2,min=60数据包
xa0xa0最大队列长度
xa0xa0q1,max=300数据包
xa0xa0q2,max=400数据包
xa0xa0缓冲器最大容量
xa0xa0B1=800数据包
xa0xa0B2=800数据包
xa0xa0平均包长
xa0xa0100字节
xa0xa0100字节
xa0xa0数据包往返时间
xa0xa0r10=47毫秒
xa0xa0r20=120毫秒
表2中,对于两类TCP流,其传输延迟T
i,i=1,2在3毫秒和4毫秒之间变动,它们取决于至目的地终端的转发路径上各核心路由器的延迟。分级服务队列管理模块控制队列的丢包率,使数据包往返时间r
10=47毫秒和r
20=120毫秒,表2中设置参数q
i,min,i=1,2和q
i,max,i=1,2以使队列长度的动态平衡点满足:q
i0,q
ixa0min≤q
i0≤q
ixa0max。在根据本发明一个具体实施方式进行的网络仿真中,数据包长度为100字节,两类TCP流缓冲器最大容量为800数据包,而第3类(语音IP流)和第4类(UDP流)的缓冲器最大容量为200数据包。图4给出两类TCP流的往返时间,可以看出两类TCP流的往返时间被控制在表2给定的范围。第1类用户具有更高的优先级,其数据往返时间有一个较小的值。图5表明,在网络进入稳定状态(0.075毫秒)后,两类TCP流的丢包率p
1,max=0.05和p
2,max=0.1能够得到保障。第1类用户具有更高的优先级,其丢包率有一个较小的值。图6表明,TCP,VOIP和UDP流的吞吐量可充分利用Diffserv边缘路由器的输出连接容量。图6中最下方曲线表明第4类UDP流并不能保证用户获得可靠的数据传输速率,因为他们优先级最低。但是,如果它们的合计链路容量小于1000数据包/毫秒,它们仍然可以获得所需的吞吐量,见图6。图6中第2条曲线表明第3类数据流(语音IP流)吞吐量恒定,可以保证语音IP流的快速转发。图6中最上方曲线和第3条曲线说明两类TCP流的吞吐量的动态范围稳定,表明Diffserv边缘路由器可以提供稳定的接入与转发。虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些具体实施方式仅是举例说明,本领域的技术人员在不脱离本发明的原理和实质的情况下,可以对上述方法和系统的细节进行各种省略、替换和改变。例如,合并上述方法步骤,从而按照实质相同的方法执行实质相同的功能以实现实质相同的结果则属于本发明的范围。本发明的范围仅由所附权利要求书限定。